package com.easy.util;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

public class ImageUtil {
    private static final String ENDPOINT = "oss-cn-beijing.aliyuncs.com";
    private static final String BUCKET_NAME="liufan666";
    private static final String ACCESS_KEY_ID="LTAI5tEfCt9NEMDaYiYa4NPa";
    private static final String ACCESS_KEY_SECRET="JHaBM2SbKi7g49oyeIYVWs8Lo9lu0I";
    private static final  OSS ossClient=new OSSClientBuilder().build("http://"+ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET);

    public static String upload(InputStream is, String filename) {
        String newFileName = UUID.randomUUID().toString()+filename.substring(filename.lastIndexOf("."));

        //发送请求
        PutObjectRequest request=new PutObjectRequest(BUCKET_NAME,newFileName,is);
        //响应结果
        PutObjectResult result=ossClient.putObject(request);
        return  "https://"+BUCKET_NAME+"."+ENDPOINT+"/"+newFileName;
    }

    public static List< String> getFileList(){
        List<String> list=new ArrayList<>();
        ListObjectsRequest request=new ListObjectsRequest(BUCKET_NAME);
        request.setMarker(null);
        request.setMaxKeys(1000);
       ObjectListing objectListing= ossClient.listObjects(request);
       for (OSSObjectSummary objectSummary:objectListing.getObjectSummaries()){
           list.add(objectSummary.getKey());
       }
       return  list;
    }

    public static void delete(String fileName){
        ossClient.deleteObject(BUCKET_NAME,fileName);
    }

    public static void deleteList(List< String>  fileNameList){
       DeleteObjectsRequest deleteObjectsRequest= new DeleteObjectsRequest(BUCKET_NAME);
       deleteObjectsRequest.setKeys(fileNameList);
       ossClient.deleteObjects(deleteObjectsRequest);
    }

    public static void main(String[] args)  {

    }
}
